package god;

import java.util.Scanner;

public class J15Cal {
	public static void main(String[] args) {
		String msg = "두 정수와 연산자를 입력해주세요.";
		Scanner sc = new Scanner(System.in);
		
		// 4개 중에서 연산자 비교 후 1개만 사용하기 때문에 미리 만들어 놓으면 메모리를 효율적으로 사용하지 못함 (메모리 낭비)
		// new 연산자를 이용한 객체 생성은 최대한 천천히 할 것.
		Add ad = null;
		Sub su = null;
		Mul mu = null;
		Div di = null;
		
		System.out.println( msg );
		int a = sc.nextInt();
		int b = sc.nextInt();
		String c = sc.next();
		
		// String 비교는 switch로 가능. if는 == 말고 .equal 로 해야함
		switch (c) {
		case "+" : 
			ad = new Add(); 
			ad.setValue( a, b );
			System.out.println( ad.calculate() );
			break;
		case "-" : 
			su = new Sub();
			su.setValue(a, b);
			System.out.println( su.calculate() );
			break;
		case "*" : 
			mu = new Mul();
			mu.setValue(a, b);
			System.out.println( mu.calculate() );
			break;
		case "/" : 
			di = new Div();
			di.setValue(a, b);
			System.out.println( di.calculate() );
			break;
		}
	}
}

class Cal {
	private int a;
	private int b;
	private String c;
		
	public int getA() { return a; }
	public int getB() { return b; }
	public String getC() { return c; }
	
	public void setValue( int a, int b) {
		this.a = a;
		this.b = b;
	}
	
	public int calculate() {
		return 0;
	}
}

class Add extends Cal {
	@Override
	public int calculate() {
		return getA() + getB();
	}
}

class Sub extends Cal {
	@Override
	public int calculate() {
		return getA() - getB();
	}
}

class Mul extends Cal {
	@Override
	public int calculate() {
		return getA() * getB();
	}
}

class Div extends Cal {
	@Override
	public int calculate() {
		return getA() / getB();
	}
}